____ _ _ _ _
| _ \ ___ | |_ (_) _ __ ___ __| | (_) __ _
| |_) | / _ \ | __| | | | '_ \ / _ \ / _| | | | / _ |
| _ < | __/ | |_ | | | |_) | | __/ | (_| | | | | (_| |
|_| \_\ \___| \__| |_| | .__/ \___| \__,_| |_| \__,_|
|_|
- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
Certificate Management Protocol
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
top
Das Certificate Management Protocol (CMP, englisch für „Zertifikats-Verwaltungsprotokoll“) ist ein Protokoll von der IETF zur Verwaltung digitaler Zertifikate nach dem Standard X.509 in einer Public-Key-Infrastruktur (PKI). Das Protokoll regelt hierbei die Interaktion zwischen PKI-Klienten (Nutzern bzw. von ihnen verwendeten Anwendungen) oder PKI-Komponenten, die X.509-Zertifikate beantragen oder verwalten möchten, und PKI-Komponenten wie einer Registrierungsstelle (RA) oder Zertifizierungsstelle (CA).
Contents
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
Nachrichtentypen
Eine CMP Nachricht kann einem der folgenden Typen entsprechen:
• Initialisierungs-Anforderung
• Initialisierungs-Antwort
• Zertifizierungs-Anforderung
• Zertifizierungs-Antwort
• PKCS #10 Zertifizierungs-Anforderung
• Beweis des Schlüsselbesitzes-Aufgabe
• Beweis des Schlüsselbesitzes-Antwort
• Aktualisierungs-Anfrage
• Aktualisierungs-Antwort
• Schlüssel-Wiederherstellungs-Anfrage
• Schlüssel-Wiederherstellungs-Antwort
• Widerruf-Anforderung
• Widerruf-Antwort
• Kreuz-Zertifizierungs-Anforderung
• Kreuz-Zertifizierungs-Antwort
• CA-Schlüssel-Aktualisierungs-Bekanntgabe
• Zertifikats-Bekanntgabe
• Widerruf-Bekanntgabe
• CRL-Bekanntgabe
• Bestätigung
• Verschachtelte Nachricht
• Allgemeine Nachricht
• Allgemeine Antwort
• Fehler-Nachricht
• Zertifikats-Bestätigung
• Abfrage-Anfrage
• Abfrage-Antwort
Nachrichtenformat
CMP-Nachrichten sind DER-kodierte Datenstrukturen, die in ASN.1 definiert sind. Der Grundaufbau besteht aus einem Header, dessen Inhalt den meisten Nachrichtentypen gemein ist, und aus einem Body (Nachrichtenrumpf), der Informationen enthält, die für den jeweiligen Typ spezifisch sind. Außerdem können optional noch Daten zum Schutz der Integrität und Authentizität sowie zusätzliche, für den Empfänger eventuell nützliche Zertifikate in einer Nachricht enthalten sein.
Der Body der Anforderungstypen für Initialisierung, Zertifizierung, Schlüssel Aktualisierung, Schlüssel Wiederherstellung und Kreuz-Zertifizierung entspricht dem in RFC 4211cite-ref-4[4] definierten Certificate Request Message Format (CRMF, deutsch Zertifikats-Anforderungs-Nachrichtenformat). Die Formate der restlichen Nachrichten sind im RFC 9810 beschrieben,cite-ref-rfc9810-1-1[1] welches CMP definiert.
Transport
Für den Transport von CMP-Nachrichten gibt es viele Möglichkeiten, insbesondere:
• Über TCP oder jedes andere zuverlässige, verbindungsorientierte Transportprotokoll.
Der in HTTP gekapselte Transport ist am üblichsten.cite-ref-5[5]
Der Content-Type für CMP ist application/pkixcmp. In veralteten Versionen wurde application/x-pkixcmp verwendet.
Implementierungen
• OpenSSL ab Version 3.0 implementiert eine Vielzahl von CMP-Features in C und bietet ein Kommandozeilen-Tool für einen CMP-Client.cite-ref-6[6] Der sog. generic CMP client bietet darauf aufbauend eine relativ einfach nutzbare Programmierschnittstelle (engl. high-level API), die dem leichtgewichtigen CMP-Profil folgt, welches in RFC: 9483 (englisch). definiert ist.
• BouncyCastle unterstützt CMP-Nachrichten für Java und C#.
• Die Bibliothek cryptlib implementiert CMPv2 in C.
Geschichte
• CMP Version 1 wurde in RFC 2510 (CMP, 1999)cite-ref-rfc2510-3-1[3] spezifiziert.
• CMPv2 wurde in RFC 4210 (CMP, 2005)cite-ref-rfc4210-2-1[2] spezifiziert.
• CMPv3 wurde zunächst in RFC 9480 (CMP, 2023)cite-ref-rfc9480-7-0[7] als Erweiterung von RFC 4210 spezifiziert, dann aber im Juli 2025 als eigenständiges Dokument herausgebracht RFC: 9810 (englisch). Dort wurden auch diverse meist kleinere Erweiterungen eingefügt, insbesondere die Unterstützung von KEM-Schlüsselmaterial.
Normen und Standards
• RFC: 9810 – Internet X.509 Public Key Infrastructure -- Certificate Management Protocol (CMP). 2025 (englisch).
• RFC: 9811 – Internet X.509 Public Key Infrastructure – HTTP Transfer for the Certificate Management Protocol (CMP). 2025 (Erweiterung von RFC 9810, englisch).
• RFC: 4211 – Internet X.509 Public Key Infrastructure Certificate Request Message Format (CRMF). (Basis für CMP und CMC, englisch).
• RFC: 9481 – Certificate Management Protocol (CMP) Algorithms. 2023 (englisch).
• RFC: 9482 – Constrained Application Protocol (CoAP) Transfer for the Certificate Management Protocol. 2023 (englisch).
• RFC: 9483 – Lightweight Certificate Management Protocol (CMP) Profile. 2023 (englisch).
Einzelnachweise
cite-note-rfc9810-11. RFC: 9810 – Internet X.509 Public Key Infrastructure Certificate Management Protocol (CMP). 2025 (englisch).
cite-note-rfc4210-22. RFC: 4210 – Internet X.509 Public Key Infrastructure Certificate Management Protocol (CMP). 2005 (englisch).
cite-note-rfc2510-33. RFC: 2510 – Internet X.509 Public Key Infrastructure Certificate Management Protocols. 1999 (englisch).
cite-note-55. ↑ osdir.com: Re: CMP – RFC??? (Memento vom 30. September 2007 im Internet Archive) (englisch)
cite-note-66. ↑ CMP client support in OpenSSL 3.0 (englisch)